//
//  STOAuthProgressView.swift
//  STVVeibo
//
//  Created by leergou on 16/7/21.
//  Copyright © 2016年 WhiteHouse. All rights reserved.
//

import UIKit

class STOAuthProgressView: UIProgressView {
    
    // 指定一个计时器
    var timer: NSTimer?
    // 定义一个标志,是否要播放动画
    var isAnimating: Bool = true
    
    override init(frame: CGRect) {
        
        super.init(frame: CGRect(x: 0, y: 64, width: SCREENW, height: 2))
        
        setupUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    //设置视图
    func setupUI() {
        
        tintColor = UIColor.greenColor()
    }
    //MARK: 开始动画,供外界调用
    func startAnimation() {
        
        timer = NSTimer.scheduledTimerWithTimeInterval(1/60, target: self, selector: "valueChanged", userInfo: nil, repeats: true)
    }
    //MARK: 动画结束
    func endAnimation() {
        
        isAnimating = false
    }
    
    //MARK: 动画结束,删除进度条
    func removeProgressView() {
        
        removeFromSuperview()
    }
    
    //MARK: 计时器监听事件
    func valueChanged() {
        
        if isAnimating {
            
            progress += 0.5
            // 当加到 0.95的时候,停止,
            if progress >= 0.95 {
                progress = 095
            }
        } else {
            if progress == 1 {
                hidden = true
                timer?.invalidate()
            } else {
                progress += 0.05
            }
            
        }
    }
    
    // 当切换页面,计时器也要失效(已经构成循环引用),否则,计时器一直在走,控制器也不能释放
    deinit{
        
        timer?.invalidate()
    }
    
    
    
    
    
    
}
